Advances in semiconductor processing and logic design have permitted an increase in the amount of logic that may be present on integrated circuit devices. As a result, computer system configurations have evolved from a single or multiple integrated circuits in a system to multiple hardware threads, multiple cores, multiple devices, and/or complete systems on individual integrated circuits. Additionally, as the density of integrated circuits has grown, the power requirements for computing systems (from embedded systems to servers) have also escalated. Furthermore, software inefficiencies, and its requirements of hardware, have also caused an increase in computing device energy consumption. In fact, some studies indicate that computing devices consume a sizeable percentage of the entire electricity supply for a country, such as the United States of America. As a result, there is a vital need for energy efficiency and conservation associated with integrated circuits. These needs will increase as servers, desktop computers, notebooks, ultrabooks, tablets, mobile phones, processors, embedded systems, etc. become even more prevalent (from inclusion in the typical computer, automobiles, and televisions to biotechnology).
In many computing environments, it is an established fact that for most times systems such as servers are operating well below their peak performance. During these periods of low utilization the focus is on saving as much power as possible in order to reduce energy costs. Power management technologies can deliver significant power savings during periods of low utilization. However every power management technology involves a power/performance tradeoff, especially during periods of high activity. A user would ideally like to save as much power as possible at low utilization while realizing maximum performance at times of high utilization.
Users who cannot tolerate performance loss at high utilizations typically tune power management features for a performance policy. This implies that when the server is underutilized, it will consume more power than optimal. Users who like to save power at low utilizations typically tune power management features for a power saver policy. This implies that when the server is highly utilized, the highest performance of the server may not be realized. However, at low server utilizations where the end user can typically tolerate higher performance loss, available power savings are not realized.